// 从零开始的C语言基础
// 1.2 变量的定义、声明与重要特征
// 作者：叶三可（B站uid：uid:20423698494）

/*代码说明：
    这是用于学生编写第一章的程序（双整数加法器）的模板代码，用于熟悉相关知识点。
    请结合课程视频内容在相应的区域内完成代码的补充编写，不要修改区域以外的代码。
    未完成需要编写区域的代码编写时代码无法编译生成正确的可执行程序。
  编写区域示例：
    // !!! 对于要编写语句的说明 !!!                                       */
    /*========== 编程区域1 开始 ==========*/
          /*在区域内完成代码的编写)*/
    /*========== 编程区域1 结束 ==========*/

//本次作业共有两个区域需要编写
#include <stdio.h>
#include <stdlib.h>

int main() {
    char buffer[100];  // 用于清空输入缓冲区
    int valid_input = 0;

    // 声明变量：第一个被加数num1和第二个被加数num2
    int num1, num2;

    // !!! 在编程区域1内完成： 声明一个变量名为sum的整型变量存储加法计算的结果 !!!
    /*========== 编程区域1 开始 ==========*/

    /*========== 编程区域1 结束 ==========*/
    
    // 提示并读取第一个整数，循环直到输入有效
    do {
        printf("\n请输入第一个整数: ");
        if (scanf("%d", &num1) == 1) {
            valid_input = 1;  // 输入有效
        } else {
            printf("错误：请输入有效的整数！请重试。\n");
            // 清空输入缓冲区
            while (getchar() != '\n');
        }
    } while (!valid_input);
    
    // 重置标志，准备读取第二个整数
    valid_input = 0;
    
    // 2. 提示并读取第二个整数，循环直到输入有效
    do {
        printf("请输入第二个整数: ");
        if (scanf("%d", &num2) == 1) {
            valid_input = 1;  // 输入有效
        } else {
            printf("错误：请输入有效的整数！请重试。\n");
            // 清空输入缓冲区
            while (getchar() != '\n');
        }
    } while (!valid_input);
    
    // !!! 在编程区域2内完成： 使用变量num1, num2和sum计算两个整数加法的表达式 !!!
    /*========== 编程区域2 开始 ==========*/

    /*========== 编程区域2 结束 ==========*/
    
    // 打印计算结果
    printf("\n计算结果:\n");
    printf("%d + %d = %d\n", num1, num2, sum);
    
    // 可能的额外信息
    if (sum < 0 && num1 > 0 && num2 > 0) {
        printf("注意：结果为负数可能表示发生了整数溢出。\n");
    }
    
    system("pause");
    return 0;
}
